package cn.lzy.ioc;

import cn.lzy.ioc.entity.Dog;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @Description
 * @Author Administrator
 * @Date 2023/8/31 17:32
 * @Version
 **/
public class TestDemo01 {

    public static void main(String[] args) {
        // 创建容器，该容器会自动去 classpath 路径下查找配置文件，根据配置文件启动容器
        // 这行代码，会加载 spring 的配置文件（即指定的 beans.xml），并完成容器的初始化
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");

        // 1.根据 bean 的名字获取
        Dog dog1 = (Dog) ctx.getBean("dog");
        // 2.根据 bean 的名字、类型获取
        Dog dog2 = ctx.getBean("dog", Dog.class);
        // 3.根据 bean 的类型获取（慎用，需要确保该类型的bean仅存在一个）
        Dog dog3 = ctx.getBean(Dog.class);

        System.out.println("dog1 = " + dog1);
        System.out.println("dog2 = " + dog2);
        System.out.println("dog3 = " + dog3);
    }
}
